package com.xidian.zhiancloud.service.luling.PointPart;

import com.xidian.zhiancloud.dao.EquipFacStatusMapper;
import com.xidian.zhiancloud.enums.GeneralResponseEnums;
import com.xidian.zhiancloud.exception.CustomizeException;
import com.xidian.zhiancloud.model.EquipFacStatus;
import com.xidian.zhiancloud.model.EquipFacStatusExample;
import org.apache.ibatis.session.RowBounds;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;
import java.util.Map;

@Service
public class EquipFacStatusService {
    public static Object selectByExample;
    private  EquipFacStatusService equipFacStatusService;
    @Autowired
    private    EquipFacStatusMapper  equipFacStatusMapper;



    public   List<EquipFacStatus> selectByExample (EquipFacStatusExample example) {
        return (List<EquipFacStatus>) equipFacStatusMapper.selectByExample(example);
    }


    //导入导出
/*public  List<EquipFacStatus> selectEquipFacList(Map mapResult) {
    return equipFacStatusMapper.selectByExample(input);
}*/
public  void    selectEquipFacList(EquipFacStatus  equipFacStatus ){}
//添加
    public void insert(EquipFacStatus equipFacStatus) {
        int count = equipFacStatusMapper.insert(equipFacStatus);
        if (count == 0) {
            throw new CustomizeException(GeneralResponseEnums.SYSTEM_ERROR);
        }
    }
    //删除
    public void delete(EquipFacStatus equipFacStatus) {
        EquipFacStatusExample example = new EquipFacStatusExample();
        EquipFacStatusExample.Criteria criteria = example.createCriteria();
        criteria.andIdEqualTo(equipFacStatus.getId());
        int count = equipFacStatusMapper.deleteByExample(example);
        if (count == 0) {
            throw new CustomizeException(GeneralResponseEnums.SYSTEM_ERROR);
        }
    }

    //修改
    public void update(EquipFacStatus equipFacStatus) {
        EquipFacStatusExample example = new EquipFacStatusExample();
        EquipFacStatusExample.Criteria criteria = example.createCriteria();
        criteria.andIdEqualTo(equipFacStatus.getId());
        EquipFacStatus equip = new EquipFacStatus();
        equip.setEquipName(equipFacStatus.getEquipName());
        int count = equipFacStatusMapper.updateByExampleSelective(equip, example);
        if (count == 0) {
            throw new CustomizeException(GeneralResponseEnums.SYSTEM_ERROR);
        }
    }
    //批量删除
    public void deleteByIds(Long[] ids) {
        for (Long id : ids) {
            int result = equipFacStatusMapper.deleteByPrimaryKey(id);
            if (result == 0) {
                throw new CustomizeException(GeneralResponseEnums.SYSTEM_ERROR);
            }
}
    }
    //通过设备类型查询
    public List<EquipFacStatus> getById(String equipType) {
        EquipFacStatusExample equipFacStatusExample = new EquipFacStatusExample();
        EquipFacStatusExample.Criteria criteria = equipFacStatusExample.createCriteria();
        criteria.andEquipNameEqualTo(equipType);
        List<EquipFacStatus> equipFacStatusList = equipFacStatusMapper.selectByExample(equipFacStatusExample);
        if (equipFacStatusList == null) {
            throw new CustomizeException(GeneralResponseEnums.SYSTEM_ERROR);
        }
        return equipFacStatusList;
    }
//关键字搜索
    public Object getList(String equipName, String mode, String addBy,String key, int current, int size) {
            EquipFacStatusExample equipFacStatusExample = new EquipFacStatusExample();
            EquipFacStatusExample.Criteria criteria1 = equipFacStatusExample.createCriteria();
            EquipFacStatusExample.Criteria criteria2 = equipFacStatusExample.createCriteria();
            EquipFacStatusExample.Criteria criteria3 = equipFacStatusExample.createCriteria();
            criteria1.andEquipNameEqualTo(equipName);
            criteria2.andEquipNameEqualTo(equipName);
            criteria3.andEquipNameEqualTo(equipName);
            if (mode != null) {
                criteria1.andModeEqualTo(mode);
                criteria2.andModeEqualTo(mode);
                criteria3.andModeEqualTo(mode);
            }
        if (addBy != null) {
            criteria1.andAddByEqualTo(addBy);
            criteria2.andAddByEqualTo(addBy);
            criteria3.andAddByEqualTo(addBy);
        }
        if (key!= null && !"".equals(key)) {
                criteria1.andAddByEqualTo('%' + key + '%');
                criteria2.andModeEqualTo('%' + key + '%');
                criteria3.andEquipNameEqualTo('%' + key + '%');
                equipFacStatusExample.or(criteria2);
                equipFacStatusExample.or(criteria3);
            }
            return equipFacStatusMapper.selectByExampleWithRowbounds(equipFacStatusExample, new RowBounds(current, size));
        }
    }
    //导入导出
